home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Apple Shared Library Manager / ASLM Examples / Example Tools / Sources / TArrayExample.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-11-19  |  2.5 KB  |  107 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        TArrayExample.h
  3.  
  4.     Contains:    Declarations for the TData and TDataMatchObject classes used
  5.                 in TArrayExample.cp.
  6.  
  7.     Copyright:    © 1993 by Apple Computer, Inc., all rights reserved.
  8.  
  9. */
  10.  
  11. #ifndef __TARRAYEXAMPLE__
  12. #define __TARRAYEXAMPLE__
  13.  
  14. ///————————————————————————————————————————————————————————————————————————————————————
  15. ///    TData
  16. ///
  17. /// A simple class that contains an unsigned long.
  18. ///————————————————————————————————————————————————————————————————————————————————————
  19.  
  20. class TData : public TSimpleDynamic {
  21.     public:
  22.                                 TData();
  23.                                 TData(unsigned long data);
  24.         virtual                    ~TData();
  25.  
  26.                 unsigned long    GetData() const { return fData; };
  27.  
  28.     private:    
  29.         unsigned long    fData;    // our private data
  30. };
  31.  
  32. ///————————————————————————————————————————————————————————————————————————————————————
  33. ///    TData IMLEMENTATION
  34. ///————————————————————————————————————————————————————————————————————————————————————
  35.  
  36.     inline TData::TData()
  37.     {
  38.         fData = 0L;
  39.     }
  40.  
  41.     inline TData::TData( unsigned long data )
  42.     {
  43.         fData = data;
  44.     }
  45.  
  46.     TData::~TData()
  47.     {
  48.     }
  49.  
  50. ///————————————————————————————————————————————————————————————————————————————————————
  51. ///    TDataMatchObject
  52. ///
  53. /// A match object that will compare the value stored in a TData object to the value
  54. /// that the TDataMatchObject is initialized with.
  55. ///————————————————————————————————————————————————————————————————————————————————————
  56.  
  57. class TDataMatchObject : public TMatchObject {
  58.     public:
  59.                                 TDataMatchObject();
  60.                                 TDataMatchObject(unsigned long data);
  61.         virtual                    ~TDataMatchObject();
  62.  
  63.         virtual short            Compare(const void*) const;
  64.  
  65.     private:    
  66.         unsigned long    fData;    // our private data
  67. };
  68.  
  69. ///————————————————————————————————————————————————————————————————————————————————————
  70. ///    TDataMatchObject IMLEMENTATION
  71. ///————————————————————————————————————————————————————————————————————————————————————
  72.  
  73.     inline TDataMatchObject::TDataMatchObject()
  74.     {
  75.         fData = 0L;
  76.     }
  77.  
  78.     inline TDataMatchObject::TDataMatchObject( unsigned long data )
  79.     {
  80.         fData = data;
  81.     }
  82.  
  83.     TDataMatchObject::~TDataMatchObject()
  84.     {
  85.     }
  86.  
  87.     short TDataMatchObject::Compare(const void* object) const
  88.     {
  89.         //
  90.         // Unfortunately we can't do couts here since Compare is always called
  91.         // with interrupts disabled, so do Trace's instead.
  92.         //
  93.     
  94.         unsigned long data = ((const TData*)object)->GetData();
  95.  
  96.         Trace("TDataMatchObject::Compare called. data = %d", data);
  97.         if ( fData == data )
  98.             Trace(" A match!");
  99.         Trace("\n");
  100.         
  101.         if ( fData == data )
  102.             return 0;        // 0 means they are equal
  103.         else
  104.             return  fData > data ? 1 : -1;
  105.     }
  106.  
  107. #endif;